package cc.linker.steplink.crm.merchant.service;

import cc.linker.steplink.crm.merchant.dao.RightDao;
import cc.linker.steplink.crm.merchant.pojo.RightPo;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Slf4j
@Service
public class RightService {

    @Autowired
    public RightDao rightDao;

    /**
     * 权益列表
     *
     * @param ：pageIndex 页码
     * @param ： pageSize  页面大小
     * @param ： goodsStatus    状态
     * @param ： key       关键字
     */
    public Object getRightList(Map<String, Object> params) {
        int pageIndex = 1, pageSize = 20;
        Object pi = params.get("pageIndex");
        if (pi instanceof Integer && (int) pi >= 0) {
            pageIndex = (int) pi;
        }
        Object ps = params.get("pageSize");
        if (ps instanceof Integer && (int) ps >= 0) {
            pageSize = (int) ps;
        }
        int count  = rightDao.getRightCount(params);
       if(count == 0){
            //插入系统数据
            rightDao.insertOrg(params);
        }
        PageHelper.startPage(pageIndex, pageSize);
        List<RightPo> rightList = rightDao.getRightList(params);
        if(rightList!=null && rightList.size()>0){
            for(RightPo rightPo : rightList){
                Integer useCount = rightDao.getUseCount(rightPo.getId());
                if(useCount!=null && useCount>0){
                    rightPo.setIsUse(1);
                }else {
                    rightPo.setIsUse(0);
                }
            }
        }
        return new PageInfo<>(rightList);
    }


    public Object getAllRightList(Map<String, Object> params) {
        List<RightPo> rightList = rightDao.getAllRightList(params);
        return rightList;
    }
    /**
     * 权益详情
     *
     * @param ：id 主键
     */
    public Object getRightInfo(Long id) {
        RightPo rightInfo = rightDao.getRightInfo(id);
        return rightInfo;
    }

    public void delete(Long id) {
        rightDao.delete(id);
        //删除关联关系
        rightDao.deleteLevel(id);
        rightDao.deleteVip(id);
    }

    /**
     * 保存权益
     *
     * @param ：id 主键
     * @param ：rightName 权益名称
     * @param ：showName 展示名称
     * @param ：rightCover 权益图片
     * @param ：rightDesc 简介
     * @param ：rightDesc 简介
     *
     */
    public void save(Map<String, Object> param) {
        if(StringUtils.isEmpty(param.get("id"))){
            //新增
            rightDao.insert(param);
        }else {
            //编辑
            rightDao.update(param);
        }
    }

}
